WIFI AP 和STA同时开启


1. 概述

sta模式:wifi作为client,去连接AP/router的工作模式。

ap模式:wifi作为热点,供其他设备连接。


2. 代码修改和配置

  1. 配置,然后编译。

    1. 默认配置中已经开启wifi。

    2. 开启zk_full的模式:vim project/release/customer_tailor/nvr_i2m_display_glibc_tailor.mk verify_zk_full:=enable

    3. 避免UI调用wifi冲突,将sdk\verify\application\zk_full\demo.sh 最后一行代码拿掉。

      ........
      
      cd /customer
      
      chmod 777 zkgui
      
      #./zkgui &
      
    4. 编译,升级。重启。


3. 修改板端行为

  1. 添加AP热点信息

    / # vi appconfigs/wpa_supplicant.conf
    ctrl_interface=/tmp/wifi/run/wpa_supplicant
    update_config=1
    
    network={
        ssid="aryl iPhone"
        psk="123456789a"
    }
    
  2. wifi 模块初始化

    cd /config/wifi
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/lib:/config/wifi
    ./ssw01bInit.sh
    
  3. 测试wifi 连接 (连接,获取IP,通过路由器或手机来观察)

    ./wpa_supplicant -Dnl80211 -i wlan0 -c /appconfigs/wpa_supplicant.conf -d &
    sleep 2
    udhcpc -q -i wlan0 -s /etc/init.d/udhcpc.script &
    
  4. 扫描热点:

    ./iwlist wlan0 scanning
    
  5. 查询连接状态:

    ./wpa_cli -i wlan0 -p /tmp/wifi/run/wpa_supplicant status
    
  6. ping

    ping -I wlan0 14.215.177.39
    
  7. DNS mount -o remount,rw / 如果dns sever:是无效的ip,改为8.8.8.

  8. 编辑vi /etc/resolv.conf

    export LD_LIBRARY_PATH=$LD_LIBRARY_ifPATH:/customer/libdns
    ping -I wlan0 www.baidu.com
    

    如果以上步骤测试均正常,sta模式验证完毕。

  9. 开启AP模式

    ifconfig p2p0 up
    ifconfig p2p0 192.168.1.100 netmask 255.255.255.0
    ./hostapd -B /config/wifi/hostapd.conf
    ./dnsmasq -i p2p0 --no-daemon -C /config/wifi/dnsmasq.conf &
    

    查看连接设备信息:

    ./hostapd_cli -i p2p0 -p /var/run/hostapd all_sta &
    
  10. 通过pc 搜索ssid:ssw101bap passwd:12345678 (可以修改hostapd.conf 的ssid和password)

如果以上步骤测试均正常,ap模式验证完毕。

sta和ap模式同时开启验证完毕。